package com.doudou.collection.domain.service.admin;

import com.doudou.collection.infrastructure.common.pojo.vo.PageData;
import com.doudou.collection.infrastructure.common.security.CurrentPrincipal;
import com.doudou.collection.orm.dto.admin.role.RoleQueryDTO;
import com.doudou.collection.orm.vo.admin.SysRoleVO;

import java.util.List;

/**
 * @ClassName SysPermissionService
 * @Description 后台权限业务类
 * @Author blue sky
 * @Date 2023/6/26 23:52
 * @Version 1.0
 */

public interface SysRoleService {

    /**
     * 根据用户ID查询角色权限
     *
     * @param userId 用户ID
     * @return 权限列表
     */
    List<String> listRolePermissionByUserId(Long userId);

    /**
     * 获取角色数据权限
     *
     * @param user 用户信息
     * @return 角色权限信息
     */
    List<String> getRolePermission(CurrentPrincipal user);

    /**
     * 获取菜单数据权限
     *
     * @param user 用户信息
     * @return 菜单权限信息
     */
    List<String> getMenuPermission(CurrentPrincipal user);

    /**
     * 查询角色列表
     * @return
     */
    PageData<SysRoleVO> list(RoleQueryDTO roleQueryDTO);
}
